package com.xoa.controller.equipment;


import com.xoa.service.equipment.EquipTypeService;
import com.xoa.service.equipment.EquipmentScrappingManagementService;
import com.xoa.service.equipment.EquipmentScrappingService;
import com.xoa.util.LimsJson;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;

/**
 * @作者: 祝依泽
 * @创建日期： 2019/10/11
 * @类介绍: 设备报废申请
 */
@RequestMapping("/equipmentScrapping")
@Controller
public class EquipmentScrappingController {

    @Autowired
    private EquipmentScrappingService equipmentScrappingService;

    @Autowired
    private EquipTypeService equipTypeService;

    @Autowired
    private EquipmentScrappingManagementService equipmentScrappingManagementService;



    //设备报废申请页面映射
    @RequestMapping("/showIndex")
    public String showIndex(){ return "/app/equipment/equipmentScrapping/index"; }

    //弹出层添加报废信息页面映射
    @RequestMapping("/addScrapMsg")
    public String addScrapMsg(){ return "/app/equipment/equipmentScrapping/addScrapMsg"; }

    //弹出层添加报废信息页面映射
    @RequestMapping("/addEquipmentg")
    public String addEquipmentg(){ return "/app/equipment/equipmentScrapping/addEquipmentg"; }



    /**
     * @作者: 祝依泽
     * @创建日期： 2019/10/12
     * @参数说明：
     * Integer page: 页数
     * Integer limit:每页数据条数
     * @方法介绍: 查询所有新建设备报废申请并分页
     */
    @RequestMapping("/showScraplogNew")
    @ResponseBody
    public LimsJson showScraplogNew(HttpServletRequest request, Integer page, Integer limit, Map map, String column, String inptext) {
        map.put("status", "0"); //0表示新建申请
        return equipmentScrappingService.showScraplog(request, page, limit, map,column,inptext);
    }


    /**
     * @作者: 祝依泽
     * @创建日期： 2019/10/12
     * @参数说明：
     * Integer page: 页数
     * Integer limit:每页数据条数
     * @方法介绍: 查询所有待审批设备报废申请并分页
     */
    @RequestMapping("/showScraplogWait")
    @ResponseBody
    public LimsJson showScraplogWait(HttpServletRequest request, Integer page, Integer limit, Map map,String column,String inptext) {
        map.put("status", "1"); //1表示待审批申请
        return equipmentScrappingService.showScraplog(request, page, limit, map,column,inptext);
    }


    /**
     * @作者: 祝依泽
     * @创建日期： 2019/10/12
     * @参数说明：
     * Integer page: 页数
     * Integer limit:每页数据条数
     * @方法介绍: 查询所有已审批设备报废申请并分页
     */
    @RequestMapping("/showScraplogYes")
    @ResponseBody
    public LimsJson showScraplogYes(HttpServletRequest request, Integer page, Integer limit, Map map,String column,String inptext) {
        map.put("status", "2"); //10表示已审批申请
        return equipmentScrappingService.showScraplog(request, page, limit, map,column,inptext);
    }



    /**
     * @作者: 祝依泽
     * @创建日期： 2019/10/12
     * @参数说明：
     * Integer page: 页数
     * Integer limit:每页数据条数
     * @方法介绍: 查询所有未准设备报废申请并分页
     */
    @RequestMapping("/showScraplogNo")
    @ResponseBody
    public LimsJson showScraplogNo(HttpServletRequest request, Integer page, Integer limit, Map map,String column,String inptext) {
        map.put("status", "3"); //1表示未准申请
        return equipmentScrappingService.showScraplog(request, page, limit, map,column,inptext);
    }


    /**
     * @作者: 祝依泽
     * @创建日期： 2019/10/12
     * @参数说明：
     * Integer scraplogId:设备报废申请id
     * Integer page: 页数
     * Integer limit:每页数据条数
     * @方法介绍: 查询设备报废申请下的报废设备
     */
    @RequestMapping("/showScraplist")
    @ResponseBody
    public LimsJson showScraplist(HttpServletRequest request, Integer scraplogId, Integer page, Integer limit) {
        return equipmentScrappingService.showScraplist(request, scraplogId, page, limit);
    }


    /**
     * @作者: 祝依泽
     * @创建日期： 2019/10/12
     * @参数说明： String ids:报废申请的id串
     * @方法介绍: 单个删除报废申请与多条删除报废申请共用方法
     */
    @RequestMapping("/delectScraplog")
    @ResponseBody
    public LimsJson delectScraplog(HttpServletRequest request, String ids) {
        return equipmentScrappingService.delectScraplog(request, ids);
    }


    /**
     * @作者: 祝依泽
     * @创建日期： 2019/10/12
     * @参数说明： String ids:设备的id串
     * @方法介绍: 单个删除设备与多条删除设备共用方法
     */
    @RequestMapping("/delectScraplist")
    @ResponseBody
    public LimsJson delectScraplist(HttpServletRequest request, String ids) {
        return equipmentScrappingService.delectScraplist(request, ids);
    }


    /**
     * @作者: 祝依泽
     * @创建日期： 2019/10/12
     * @参数说明：
     * String jsonlog:设备报废申请数据字符串
     * String jsonlist:设备数据字符串
     * @方法介绍: 添加设备报废申请和相关报废设备
     */
    @RequestMapping("/addScraplogAndScraplist")
    @ResponseBody
    public LimsJson addScraplogAndScraplist(HttpServletRequest request, String jsonlog, String jsonlist) {
        return equipmentScrappingService.addScraplogAndScraplist(request, jsonlog, jsonlist);
    }


    /**
     * @作者: 祝依泽
     * @创建日期： 2019/10/12
     * @参数说明：
     * String jsonlist:设备数据字符串
     * @方法介绍: 添加报废设备信息
     */
    @RequestMapping("/addScraplist")
    @ResponseBody
    public LimsJson addScraplist(HttpServletRequest request, Integer scraplogId, String jsonlist) {
        return equipmentScrappingService.addScraplist(request, scraplogId, jsonlist);
    }


    /**
     * @作者: 祝依泽
     * @创建日期： 2019/10/14
     * @参数说明：String result:此参数暂时无用
     * @方法介绍: 查询所有一级父类设备类别（调用“EquipmentTypeController”里查询所有一级父类设备类型方法）
     */
    @RequestMapping("/showParentType")
    @ResponseBody
    public LimsJson showParentType(HttpServletRequest request,String result) {
        return equipTypeService.showParentEquipmentType(request, result);
    }


    /**
     * @作者: 祝依泽
     * @创建日期： 2019/10/14
     * @参数说明：
     * String result:此参数暂时无用
     * equipTypeId:设备类型id
     * @方法介绍: 查询所有一级级设备类别下的子集（调用“EquipmentTypeController”里查询所有一级父类设备类型下子集的方法）
     */
    @RequestMapping("/showChildType")
    @ResponseBody
    public LimsJson showChildType(HttpServletRequest request,Integer equipTypeId,String result) {
        return equipTypeService.showChildEquipmentType(request, equipTypeId, result);
    }


    /**
     * @作者: 祝依泽
     * @创建日期： 2019/10/14
     * @参数说明：
     * Integer equipTypeId:设备类型id
     * Integer page:分页页数
     * Integer limit:每页数据条数
     * Map map: 存放查询条件
     * @方法介绍: 通过设备类型id查询设备并分页（带状态判断）
     */
    @RequestMapping("/showEquipmentByTypeId")
    @ResponseBody
    public LimsJson showEquipmentByTypeId(HttpServletRequest request, Integer equipTypeId, Integer page, Integer limit, Integer deptId){
        return equipmentScrappingService.findequipBydept(request, equipTypeId, page, limit, deptId);
    }


    /**
     * @作者: 祝依泽
     * @创建日期： 2019/10/15
     * @方法介绍: 获取当前用户和用户所属的结算组织
     */
    @RequestMapping("/showUserAndDept")
    @ResponseBody
    public LimsJson showUserAndDept(HttpServletRequest request) {
        return equipmentScrappingService.showUserAndDept(request);
    }


    /**
     * @作者: 祝依泽
     * @创建日期： 2019/10/15
     * @参数说明： String ids:设备报废申请id串
     * @方法介绍: 单条提交申请和多条提交申请共用方法
     */
    @RequestMapping("/submitDate")
    @ResponseBody
    public LimsJson submitDate(HttpServletRequest request, String ids) {
        return equipmentScrappingService.submitDate(request, ids);
    }


    /**
     * @作者: 祝依泽
     * @创建日期： 2019/10/16
     * @参数说明：
     * String jsonlog:前台传过来的修改数据的字符串
     * Integer scraplogId:要修改数据的主键id
     * @方法介绍: 修改数据
     */
    @RequestMapping("/modifyData")
    @ResponseBody
    public LimsJson modifyData(HttpServletRequest request, String jsonlog, Integer scraplogId) {
        return equipmentScrappingService.modifyData(request, jsonlog, scraplogId);
    }


    /**
     * @作者: 祝依泽
     * @创建日期： 2019/10/29
     * @参数说明：
     * String key: 字段名称
     * String value: 查询条件（输入框输入得内容）
     * String status: （状态）
     * @方法介绍: 通用得条件查询报废申请（搜索框功能）
     */
    @RequestMapping("/conditionQueryApply")
    @ResponseBody
    public LimsJson conditionQuery(HttpServletRequest request, String key, String value, String status) {
        return equipmentScrappingManagementService.conditionQuery(request, key, value, status);
    }

    /**
     *
     * @作者 李卫卫
     * @创建日期 16:00 2020/3/17
     * @类介绍 设备报废申请 添加按钮 选择设备里的分页模糊查询
     * @参数
     * @return limsJson
     */

    @RequestMapping("/selectAddEquipment")
    @ResponseBody
    public LimsJson selectEquipment(HttpServletRequest request){
        String fieldName = request.getParameter("fieldName");
        String fieldValue = request.getParameter("fieldValue");
        Integer page = Integer.valueOf(request.getParameter("page"));
        Integer limit = Integer.valueOf(request.getParameter("limit"));
        Integer equipTypeId = Integer.valueOf(request.getParameter("equipTypeId"));
        Integer deptId = Integer.valueOf(request.getParameter("deptId"));
        return equipmentScrappingService.selectEquipment(fieldName,fieldValue,page,limit,equipTypeId,deptId);

    }
}

